package com.aaron.test.singleton.lazy;

public class LazySingletonSyn {
		
	//涉及同步的单例模式实现
	private static  LazySingletonSyn singleClass = null;
	
	
	private LazySingletonSyn(){
		System.out.println("call the private LazySingletonSyn constructor... ");
	}
	
	//函数锁
	public static synchronized LazySingletonSyn getInstanceOne(){
		if(null == singleClass){
			singleClass = new LazySingletonSyn();
		}
		return singleClass;
		
	}
	
	//代码段锁
	public static  LazySingletonSyn getInstanceTwo(){
		if(null == singleClass){
			synchronized(LazySingletonSyn.class){
				if(null == singleClass){
					singleClass = new LazySingletonSyn();
				}
			}
			singleClass = new LazySingletonSyn();
		}
		return singleClass;
		
	}
}
